﻿<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>自定义的日历</title>
    <style>
        Input {font-family: verdana;font-size: 9pt;text-decoration: none;background-color: #FFFFFF;height: 20px;border: 1px solid #666666;color:#000000;}
        .Calendar {font-family: verdana;text-decoration: none;width: 170px;background-color: #C0D0E8;font-size: 9pt;border:0px dotted #1C6FA5;}
        .CalendarTD {font-family: verdana;font-size: 7pt;color: #000000;background-color:#f6f6f6;height: 20px;width:11%;text-align: center;}
        .Title {font-family: verdana;font-size: 11pt;font-weight: normal;height: 24px;text-align: center;color: #333333;text-decoration: none;background-color: #A4B9D7;border-top-width: 1px;border-right-width: 1px;border-bottom-width: 1px;border-left-width: 1px;border-bottom-style:1px;border-top-color: #999999;border-right-color: #999999;border-bottom-color: #999999;border-left-color: #999999;}
        .Day {font-family: verdana;font-size: 7pt;color:#243F65;background-color: #E5E9F2;height: 20px;width:11%;text-align: center;}
        .DaySat {font-family: verdana;font-size: 7pt;color:#FF0000;text-decoration: none;background-color:#E5E9F2;text-align: center;height: 18px;width: 12%;}
        .DaySun {font-family: verdana;font-size: 7pt;color: #FF0000;text-decoration: none;background-color:#E5E9F2;text-align: center;height: 18px;width: 12%;}
        .DayNow {font-family: verdana;font-size: 7pt;font-weight: bold;color: #000000;background-color: #FFFFFF;height: 20px;text-align: center;}
        .DayTitle {font-family: verdana;font-size: 9pt;color: #000000;background-color: #C0D0E8;height: 20px;width:11%;text-align: center;}
        .DaySatTitle {font-family: verdana;font-size: 9pt;color:#FF0000;text-decoration: none;background-color:#C0D0E8;text-align: center;height: 20px;width: 12%;}
        .DaySunTitle {font-family: verdana;font-size: 9pt;color: #FF0000;text-decoration: none;background-color: #C0D0E8;text-align: center;height: 20px;width: 12%;}
        .DayButton {font-family: Webdings;font-size: 9pt;font-weight: bold;color: #243F65;cursor:hand;text-decoration: none;}
    </style>
    <script language="javascript">
        var months = new Array("一", "二", "三","四", "五", "六", "七", "八", "九","十", "十一", "十二");//定义月份
        var daysInMonth = new Array(31, 28, 31, 30, 31, 30, 31, 31,30, 31, 30, 31);                      //定义每月的天数
        var days = new Array("日","一", "二", "三","四", "五", "六");                                    //定义星期几
        var classTemp;
        var today=new getToday();
        var year=today.year;            //获取年份
        var month=today.month;          //获取月份
        var newCal;
        //用来获取指定年月中的天数
        function getDays(month, year)
        {
            if (1 == month) return ((0 == year % 4) && (0 != (year % 100))) ||(0 == year % 400) ? 29 : 28;
            else return daysInMonth[month];
        }
        //获取今天的年、月、日
        function getToday() {
            this.now = new Date();
            this.year = this.now.getFullYear();
            this.month = this.now.getMonth();
            this.day = this.now.getDate();
        }
        //定义日历表的显示方法
        function Calendar() {
            newCal = new Date(year,month,1);
            today = new getToday();
            var day = -1;
            var startDay = newCal.getDay();
            var endDay=getDays(newCal.getMonth(), newCal.getFullYear());
            var daily = 0;
            if ((today.year == newCal.getFullYear()) &&(today.month == newCal.getMonth()))
            {
                day = today.day;
            }
            var caltable = document.all.caltable.tBodies.calendar;
            var intDaysInMonth =getDays(newCal.getMonth(), newCal.getFullYear());

            for (var intWeek = 0; intWeek < caltable.rows.length;intWeek++)
                for (var intDay = 0;intDay < caltable.rows[intWeek].cells.length;intDay++)
                {
                    var cell = caltable.rows[intWeek].cells[intDay];
                    var montemp=(newCal.getMonth()+1)<10?("0"+(newCal.getMonth()+1)):(newCal.getMonth()+1);
                    if ((intDay == startDay) && (0 == daily)){ daily = 1;}
                    var daytemp=daily<10?("0"+daily):(daily);
                    var d="<"+newCal.getFullYear()+"-"+montemp+"-"+daytemp+">";
                    if(day==daily) cell.className="DayNow";
                    else if(intDay==6) cell.className = "DaySat";
                    else if (intDay==0) cell.className ="DaySun";
                    else cell.className="Day";
                    if ((daily > 0) && (daily <= intDaysInMonth))
                    {
                        cell.innerText = daily;
                        daily++;
                    } else
                    {
                        cell.className="CalendarTD";
                        cell.innerText = "";
                    }
                }
            document.all.year.value=year;
            document.all.month.value=month+1;
        }
        //实现月份向前翻页的方法
        function subMonth()
        {
            if ((month-1)<0)
            {
                month=11;
                year=year-1;
            } else
            {
                month=month-1;
            }
            Calendar();
        }
        //实现月份向后翻页的方法
        function addMonth()
        {
            if((month+1)>11)
            {
                month=0;
                year=year+1;
            } else
            {
                month=month+1;
            }
            Calendar();
        }
        //判断用户自己输入的年份和月份
        function setDate()
        {
            if (document.all.month.value<1||document.all.month.value>12)
            {
                alert("月的有效范围在1-12之间!");
                return;
            }
            year=Math.ceil(document.all.year.value);
            month=Math.ceil(document.all.month.value-1);
            Calendar();
        }
        //设置按钮的样式
        function buttonOver()
        {
            var obj = window.event.srcElement;
            obj.runtimeStyle.cssText = "background-color:#FFFFFF";
        }
        function buttonOut()
        {
            var obj = window.event.srcElement;
            window.setTimeout(function(){obj.runtimeStyle.cssText = "";},300);
        }
    </script>
    
</head>
<body onload=" Calendar()">
<table border="0" cellpadding="0" cellspacing="1" class="Calendar" id="caltable">
    <thead>
    <tr align="center" valign="middle">
        <td colspan="7" class="Title">
            <a href="javaScript:subMonth();" title="上一月" Class="DayButton">3</a>
            <input name="year" type="text" size="4" maxlength="4" onkeydown="if (event.keyCode==13){setDate()}" onkeyup="this.value=this.value.replace(/[^0-9]/g,'')"  onpaste="this.value=this.value.replace(/[^0-9]/g,'')"> 年 <input name="month" type="text" size="1" maxlength="2" onkeydown="if (event.keyCode==13){setDate()}" onkeyup="this.value=this.value.replace(/[^0-9]/g,'')"  onpaste="this.value=this.value.replace(/[^0-9]/g,'')"> 月 <a href="JavaScript:addMonth();" title="下一月" Class="DayButton">4</a>
        </td>
    </tr>
    <tr align="center" valign="middle">
        <script language="javascript">
            document.write("<td class=DaySunTitle id=diary >" + days[0] + "</td>");
            for (var intLoop = 1; intLoop < days.length-1;intLoop++)
                document.write("<td class=DayTitle id=diary>" + days[intLoop] + "</td>");
            document.write("<td class=DaySatTitle id=diary>" + days[intLoop] + "</td>");
        </script>
    </tr>
    </thead>
    <tbody border="1" cellspacing="0" cellpadding="0" ID="calendar" ALIGN="CENTER" >
    <script language="javascript">
        for (var intWeeks = 0; intWeeks < 6; intWeeks++)
        {
            document.write("<TR style='cursor:hand'>");
            for (var intDays = 0; intDays < days.length;intDays++) document.write("<TD class=CalendarTD onMouseover='buttonOver();' onMouseOut='buttonOut();'></TD>");
            document.write("</TR>");
        }
    </script>
    </tbody>
</table>
</body>
</html>